export interface Customer {
  customerId: number;
  customerCode: string;
  customerName: string;
  customerType: number;
  customerLevel: number;
  contactPerson: string;
  contactPhone: string;
  email: string;
  address: string;
  taxNumber: string;
  bankName: string;
  bankAccount: string;
  creditLimit: number;
  paymentTerms: string;
  salesPersonId: number;
  isActive: boolean;
  createdAt: string;
  updatedAt: string;
  createdBy: string;
  updatedBy: string;
}

export interface CustomerQueryParams {
  customerCode?: string;
  customerName?: string;
  customerType?: number;
  customerLevel?: number;
  isActive?: boolean;
  salesPersonId?: number;
  pageNumber?: number;
  pageSize?: number;
}

export interface CustomerCreateParams {
  customerCode: string;
  customerName: string;
  customerType: number;
  customerLevel: number;
  contactPerson?: string;
  contactPhone?: string;
  email?: string;
  address?: string;
  taxNumber?: string;
  bankName?: string;
  bankAccount?: string;
  creditLimit?: number;
  paymentTerms?: string;
  salesPersonId?: number;
}

export interface CustomerUpdateParams extends CustomerCreateParams {
  customerId: number;
}

export interface CustomerStatusParams {
  customerId: number;
  isActive: boolean;
}